import java.util.LinkedList;

public class Player<StateBase, Deal, MailCard> {
	private int					m_ID;
	private int					m_Cash;
	private String				m_Name;
	private int					m_Lotto[][];
	private double				m_MapX;
	private double				m_MapY;
	private int					m_Day;

	public int					m_Month;
	public boolean				m_Done;

	public LinkedList<Deal>		DealCards;
	public LinkedList<MailCard>	MailCards;

	// State Managers
	public StateBase			PreviousState;
	public StateBase			CurrentState;

	public LinkedList<Deal> getDealCards() {
		return DealCards;
	}

	public LinkedList<MailCard> getMailCards() {
		return MailCards;
	}

	// Cash
	public void setID(int a_ID) {
		m_ID = a_ID;
	}

	public int getID() {
		return m_ID;
	}

	// Name
	public void setName(String a_name) {
		m_Name = a_name;
	}

	public String getName() {
		return m_Name;
	}

	public void setCash(int m_Cash) {
		this.m_Cash = m_Cash;
	}

	public int getCash() {
		return m_Cash;
	}

	// lotto
	public int getLottoVal(int a_x, int a_y) {
		return m_Lotto[a_x][a_y];
	}

	// Gamemap functions
	public void setMapX(double a_MapX) {
		m_MapX = a_MapX;
	}

	public void setMapY(double a_MapY) {
		m_MapY = a_MapY;
	}

	public void setDay(int a_Day) {
		m_Day = a_Day;
	}

	public double getMapX() {
		return m_MapX;
	}

	public double getMapY() {
		return m_MapY;
	}

	public int getDay() {
		return m_Day;
	}

	// gameloop proccesses

	public static void Update() {
		CurrentState.Execute();
	}

	public static void DrawPlayer() {
		// glut stuff goes here to draw player piece
	}

	public static void Draw() {
		CurrentState.Draw();
	}

}
